<template>
  <h1>hello vue3</h1>
</template>

<script lang="ts">
import { defineComponent } from "vue";
/*
  1. 初始化阶段
    beforeCreate
    created
  2. 挂载阶段
    beforeMount
    mounted
      发送请求、设置定时器、绑定自定义事件等一次性异步任务

      请求为什么在mounted发送，而不是created？
        1. mounted才能操作DOM
        2. created会影响页面渲染速度，而mounted不会

      created优势：提前发送请求，更快得到结果渲染

  3. 更新阶段
    beforeUpdate
    updated

  4. 销毁/卸载阶段
    beforeDestroy(vue2)
    destroyed(vue2)

    beforeUnmount(vue3)
      清除定时器，解绑事件等收尾工作（防止内存泄漏）
    unmounted(vue3)

  被keep-alive缓存的组件，多两个生命周期函数
    activated 激活
    deactivated 失效
  
  errorCaptured 错误捕获
    一旦后代组件产生错误，就会触发这个生命周期函数，函数中可以获取到错误内容
*/
export default defineComponent({
  name: "App",
});
</script>

<style scoped></style>
